小编ele*_*aby的帖子

将数据帧重塑为具有无限行并在没有值的地方填充零的数据帧

有没有办法将 DataFrame 重塑为另一个具有不受限制的行的方法。我只想要一个有 3 列的 DataFrame,不管 DataFrame 中有多少行?

例如,

letters = pd.DataFrame({'Letters' : ['A', 'B', 'C','D', 'E', 'F', 'G', 'H', 
'I','J']})

Letters
0   A
1   B
2   C
3   D
4   E
5   F
6   G
7   H
8   I
9   J
Run Code Online (Sandbox Code Playgroud)

我想像这样用填充零来重塑它,在那里没有价值。

first   second  third
A       B       C
D       E       F
G       H       I
J       0       0
Run Code Online (Sandbox Code Playgroud)

据我所知,在 numpy reshape 方法中,您需要明确确定您想要多少列和行。

python numpy reshape dataframe pandas

2
推荐指数
1
解决办法
346
查看次数

使用字符串和数字列读取txt文件

我有制表符分隔文件(city-data.txt):

Alabama Montgomery  32.361538   -86.279118
Alaska  Juneau  58.301935   -134.41974
Run Code Online (Sandbox Code Playgroud)

有可能以某种方式读取前两列作为字符串,最后两列作为浮点数?

我的输出应该如下所示:

[(Alabama,Montgomery,32.36,-86.28),
 (Alaska,Juneau,58.30,-134.42)]
Run Code Online (Sandbox Code Playgroud)

我试过了:

mylist2=np.genfromtxt(r'city-data.txt', delimiter='\t',  dtype=("<S15","
<S15", float, float)).tolist()
Run Code Online (Sandbox Code Playgroud)

这给了我字节类型的前两列:

[(b'Alabama', b'Montgomery', 32.361538, -86.279118),
 (b'Alaska', b'Juneau', 58.301935, -134.41974)]
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

with open('city-data.txt') as f:
mylist = [tuple(i.strip().split('\t')) for i in f]
Run Code Online (Sandbox Code Playgroud)

这给了我字符串类型的所有列:

[('Alabama', 'Montgomery', '32.361538', '-86.279118'),
 ('Alaska', 'Juneau', '58.301935', '-134.41974')]
Run Code Online (Sandbox Code Playgroud)

我无法想出如何实现我需要的东西......

python string format numpy genfromtxt

0
推荐指数
1
解决办法
763
查看次数

标签 统计

numpy ×2

python ×2

dataframe ×1

format ×1

genfromtxt ×1

pandas ×1

reshape ×1

string ×1